<page-header> </page-header>

<nz-card [nzBordered]="false">
  <form nz-form [nzLayout]="'inline'" (ngSubmit)="onSearch()" class="search__form">
    <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 24, lg: 24, xl: 48, xxl: 48 }">
      <div nz-col nzMd="16" nzSm="24">
        <nz-form-item>
          <nz-form-label nzFor="orgName">{{ 'mxk.organizations.name' | i18n }}</nz-form-label>
          <nz-form-control>
            <input nz-input [(ngModel)]="query.params.orgName" [ngModelOptions]="{ standalone: true }" name="orgName"
              placeholder="" id="orgName" />
          </nz-form-control>
        </nz-form-item>
      </div>
      <div nz-col [nzSpan]="query.expandForm ? 24 : 8" [class.text-right]="query.expandForm">
        <button nz-button type="submit" [nzType]="'primary'" [nzLoading]="query.submitLoading">{{ 'mxk.text.query' |
          i18n }}</button>
        <button nz-button type="reset" (click)="onReset()" class="mx-sm" style="display: none">{{ 'mxk.text.reset' |
          i18n }}</button>
        <button nz-button (click)="query.expandForm = !query.expandForm" class="mx-sm" style="display: none">
          {{ query.expandForm ? ('mxk.text.collapse' | i18n) : ('mxk.text.expand' | i18n) }}</button>
      </div>
    </div>
  </form>
</nz-card>
<nz-card [nzBordered]="false">
  <div nz-row [nzGutter]="{ xs: 8, sm: 8, md: 8, lg: 24, xl: 48, xxl: 48 }">
    <div nz-col [nzSpan]="24" class="table-list-toolbar">
      <button nz-button type="button" [nzType]="'primary'" (click)="onAdd($event)">{{ 'mxk.text.add' | i18n }}</button>
      <button nz-button type="button" (click)="onBatchDelete($event)" [nzType]="'primary'" nzDanger class="mx-sm">{{
        'mxk.text.delete' | i18n
        }}</button>
    </div>
    <div nz-col nzMd="6" nzSm="24" class="grid-border">
      <nz-tree nzShowLine="false" [nzCheckable]="treeNodes.checkable" nzBlockNode [nzData]="treeNodes.nodes"
        (nzClick)="activeNode($event)" (nzDblClick)="openFolder($event)" [nzTreeTemplate]="nzTreeTemplate"></nz-tree>
      <ng-template #nzTreeTemplate let-node let-origin="origin">
        <span class="custom-node">
          <span *ngIf="!node.isLeaf" (contextmenu)="contextMenu($event, menu)">
            <i nz-icon [nzType]="node.isExpanded ? 'folder-open' : 'folder'" (click)="openFolder(node)"></i>
            <span class="folder-name">{{ node.title + (origin.type == 'virtual' ? '_v' : '') }}</span>
          </span>
          <span *ngIf="node.isLeaf" (contextmenu)="contextMenu($event, menu)">
            <i nz-icon nzType="file"></i>
            <span class="file-name">{{ node.title + (origin.type == 'virtual' ? '_v' : '') }}</span>
          </span>
        </span>
      </ng-template>
      <nz-dropdown-menu #menu="nzDropdownMenu">
        <ul nz-menu>
          <li nz-menu-item (click)="selectDropdown()">Action 1</li>
          <li nz-menu-item (click)="selectDropdown()">Action 2</li>
        </ul>
      </nz-dropdown-menu>
    </div>
    <div nz-col nzMd="18" nzSm="24" class="grid-border">
      <nz-table #dynamicTable nzBordered nzShowSizeChanger [nzData]="query.results.rows" [nzFrontPagination]="false"
        [nzTotal]="query.results.records" [nzPageSizeOptions]="query.params.pageSizeOptions"
        [nzPageSize]="query.params.pageSize" [nzPageIndex]="query.params.pageNumber"
        [nzLoading]="this.query.tableLoading" (nzQueryParams)="onQueryParamsChange($event)" nzWidth="100%">
        <thead>
          <tr>
            <th [nzChecked]="query.checked" [nzIndeterminate]="query.indeterminate"
              (nzCheckedChange)="onTableAllChecked($event)"></th>
            <th nzAlign="center" style="width: 20%">{{ 'mxk.organizations.code' | i18n }}</th>
            <th nzAlign="center" style="width: 30%">{{ 'mxk.organizations.name' | i18n }}</th>
            <th nzAlign="center" style="width: 10%">{{ 'mxk.organizations.type' | i18n }}</th>
            <th nzAlign="center" style="width: 10%">{{ 'mxk.text.sortIndex' | i18n }}</th>
            <th nzAlign="center" style="width: 10%">{{ 'mxk.text.status' | i18n }}</th>
            <th nzAlign="center" style="width: 20%"><a>{{ 'mxk.text.action' | i18n }}</a></th>
          </tr>
        </thead>
        <tbody>
          <tr *ngFor="let data of query.results.rows">
            <td [nzChecked]="query.tableCheckedId.has(data.id)" [nzDisabled]="data.disabled"
              (nzCheckedChange)="onTableItemChecked(data.id, $event)"></td>
            <td nzAlign="left">
              <span>{{ data.orgCode }}</span>
            </td>
            <td nzAlign="left"> {{ data.orgName }}</td>
            <td nzAlign="center" *ngIf="data.type == 'company'"> {{ 'mxk.organizations.type.company' | i18n }}</td>
            <td nzAlign="center" *ngIf="data.type == 'division'"> {{ 'mxk.organizations.type.division' | i18n }}</td>
            <td nzAlign="center" *ngIf="data.type == 'department'"> {{ 'mxk.organizations.type.department' | i18n }}
            </td>
            <td nzAlign="center" *ngIf="data.type == 'entity'"> {{ 'mxk.organizations.type.entity' | i18n }}</td>
            <td nzAlign="center" *ngIf="data.type == 'virtual'"> {{ 'mxk.organizations.type.virtual' | i18n }}</td>
            <td nzAlign="center"> {{ data.sortIndex }}</td>
            <td nzAlign="center"> <i *ngIf="data.status == 1" nz-icon nzType="check-circle" nzTheme="fill"
                style="color: green"></i></td>
            <td nzAlign="left" nzBreakWord="false">
              <div nz-col>
                <button nz-button type="button" (click)="onEdit($event, data.id)">
                  {{ 'mxk.text.edit' | i18n }}
                </button>
                <button
                  *ngIf="data.parentId != null && data.parentId != '-1' && data.parentId != '0' && data.id != data.instId"
                  nz-button type="button" (click)="onDelete($event, data.id)" nzDanger>{{ 'mxk.text.delete' | i18n
                  }}</button>
              </div>
            </td>
          </tr>
        </tbody>
      </nz-table>
    </div>
  </div>
</nz-card>